/**
 * 默认上传图片,上传其他uploadImage设置false
 * 单文件上传input框必存在，多文件上传需提供name，自动生成input框
 *必传参数：
 *url string 上传路径
 *formData object post数据
 *input selector 文本框(单文件上传id,多文件上传name)
 */
function webuploader_image(obj){
    var config={
        container:'#webuploader-container',  //selector 外部容器
        multiple:false,   //单、多文件上传
        uploader:'uploader',  //webuploader对象
        id:'#webuploader', //selector 上传按钮
        fileVal:'upfile', //文件上传名
        num:1, //文件数量限制
        class:'ui-btn ui-btn-primary', //上传按钮样式(多样式空格分离)
        extensions:'gif,png,jpg,jpeg', //文件类型(多类型逗号分隔)
        uploadImage:true,//默认上传图片
        chunked:false, //是否分片
        chunkSize:2048 //字节(默认2M)
    };
    $.extend(config,obj);
    var uploader=config.uploader;
    if(config.multiple){
        config.inputSelector=config.input.replace(/(\[|\])/g,'\\$1');
    }
    uploader=WebUploader.create({
        auto:true, 
        fileVal:'upfile',
        swf:projectName+'/static/ueditor/third-party/webuploader/Uploader.swf',
        server:config.url,
        formData:config.formData,
        fileNumLimit:config.num,
        pick:{
            id:config.id,
            multiple:config.multiple
        },
        accept:[
            {
                extensions:config.extensions
            }
        ]
    });
    uploader.on('beforeFileQueued',function(file){
        //多文件上传检查数量限制
        //if(config.multiple){
            var len=$(config.container).find('li.image:visible').length;
            if(len>=config.num){
                art.dialog.tips('<font color="red">最多上传数量:'+config.num+'</font>',2);
                return false;
            }
        //}
    });
    uploader.on('fileQueued',function(file){
        var html='<li id="'+file.id+'" class="image">';
        //上传图片即时展示
        var input='';
        if(config.uploadImage){
            input='<p class="div120x90"><img src="" class="webuploader-image"/><span class="webuploader-del">－</span></p>';
        }else{
            input='<span class="webuploader-fileName">'+file.name+'('+(file.size/1024/1024).toFixed(2)+'M)</span><span class="webuploader-percent"> - 0%</span>';
        }
        html+=input;
        html+='<p class="webuploader-progress"><span></span></p>';
        html+='<span class="webuploader-del">X</span></li>';
		
		var li = $(config.container).find('.webuploader-filelist li.hidden').clone();
		li.attr('id', file.id).removeClass('hidden').end();
		
		
        //单文件覆盖，多文件追加
        if(config.multiple){
            //$(config.container).find('.webuploader-filelist').append(html);
        }else{
            //取消覆盖前正在上传的文件
            var files=uploader.getFiles('progress');
            if(files.length>0){
                uploader.removeFile(files[0],true);
            }
        }
		$(config.container).find('.webuploader-filelist li.webuploader-add').before(li);
    });
    uploader.on('error',function(type){
        switch(type){
            case 'Q_EXCEED_NUM_LIMIT':
                art.dialog.tips('<font color="red">最多上传数量:'+config.num+'</font>',2);
                break;
            case 'F_DUPLICATE':
                   art.dialog.tips('<font color="red">请勿重复上传</font>',2);
                   break;
            case 'Q_TYPE_DENIED':
                   art.dialog.tips('<font color="red">非法文件类型</font>',2);
                   break
        }
    });
    uploader.on( 'uploadProgress', function( file, percentage ) {
       var percent=(percentage*100).toFixed(0);
       //非图片上传同时数字显示上传进度
       if(config.uploadImage){
            $('#'+file.id).find('.webuploader-progress>span').css('width',percent+'%');
       }else{
           $('#'+file.id).find('.webuploader-progress>span').css('width',percent+'%').end().find('.webuploader-percent').html(' - '+percent+'%');
       }
    });
    uploader.on( 'uploadSuccess', function( file ,response) {
		
        if(response.state=='SUCCESS'){
            //上传成功，展示图片
            if(config.uploadImage){
                $('#'+file.id).find('.webuploader-progress').remove().end().find('img.webuploader-image').attr({'src':projectName+'/'+response.url, 'value':response.url});
				$('#'+file.id).find('input').val(response.url);
            }else{
                //单文件上传隐藏
                if(!config.multiple){
                    $('#'+file.id).remove();
                }
            }
            var imgs = [];
			$(config.container).find('li.image:visible img').each(function(){
				imgs.push($(this).attr('value'));
			});
			$('input'+config.input, config.container).val(imgs.join(','));
        }else{
            art.dialog.tips('<font color="red">'+response.msg||response.state+'</font>',2);
        }
    });
    $(config.container).on('click','span.webuploader-del',function(){
		var li = $(this).parents('li.image');
        var file_id = li.attr('id');
        
        if(file_id){
            uploader.removeFile(file_id,true); 
        }
        li.remove();
        var imgs = [];
		$(config.container).find('li.image:visible img').each(function(){
			imgs.push($(this).attr('value'));
		});
		$('input'+config.input, config.container).val(imgs.join(','));
    });
    //添加样式
    $(config.id).children().eq(0).removeClass('webuploader-pick').addClass(config.class);
}